<?php

require_once 'Mobitv/Admin/Action.php';

class EditAction extends Mobitv_Admin_Action
{
    public function execute()
    {
        $this->checkPermission();
        $this->updateLoginStatus();
        $userId = isset($_GET['id']) ? intval($_GET['id']) : 0;
        $userDao = Vega_Dao::factory('Mobitv_Admin_Admin');
        $arrGroup = $userDao->getGroupList($userId);
        $this->_view->assign('arrGroup', $arrGroup);
        if(!$userId || !$user=$userDao->getDetail($userId)) {
            $this->forward404();
        }

        $groupDao = Vega_Dao::factory('Mobitv_Admin_Group');
        $groups = $groupDao->getList();

        if($_POST) {
            $rules = array(
				'fullname'  => 'required|max_length:45',
                'email'     => 'required|valid_email',
			);

			$this->buildValidator($rules);

            $langError = array(
                'fullname' => array(
                    'required'      => 'Bạn phải nhập vào tên đầy đủ',
                    'max_length'    => 'Tên không được quá %val% ký tự'
                ),
                'email' => array(
                    'required'      => 'Bạn phải nhập vào email',
                    'valid_email'    => 'Email không hợp lệ'
                )
            );

			$this->_validator->setErrorMessages($langError);

			if ( ! $this->_validator->execute())
			{
				$this->_view->assign('error', $this->_validator->getErrorMessages());

                $this->alert('Có lỗi xảy ra!');
			}
			else
			{
                // Save to database
                $data = array(
                    'fullname'  => $_POST['fullname'],
                    'email'     => $_POST['email'],
                    'password'  => $_POST['password'],
                    'group_id'  => substr($_POST['group_id_list'],0,-3),
                    'parent_id' => $_POST['rdo_parent_cp']
                );
                if(!$userDao->save($userId, $data)) {
                    $this->gotoUrl('/admin', 'Lỗi hệ thống!');
                } else {
                    $this->gotoUrl('/admin', 'Sửa thành công!');
                }
            }
        }
        else {
            $_POST = $user;
        }
        $arrParentCP = $userDao->getAllParentCP();
        $this->_view->assign('arrParentCP', $arrParentCP);
        $this->_view->assign('user', $user);
        $this->_view->assign('groups', $groups);
    }
}